(function($) {
	mui.init({
		swipeBack: false,
		keyEventBind: {
			backbutton: false
		}
	});
})(mui);

//当页面dom结构加载完成后绑定事件

    mui.ready(function(){
        //加载contacts列表
        mui.plusReady(function(){
            listContacts();
        });
        
        //初始化字母导航
        letterNavigator.init({top:44});
        
        function listContacts(){
            plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE,function(addressBook){
                    addressBook.find(["displayName","phoneNumbers"],function(contacts){
                        contacts = formatContactData(contacts);
                        renderContacts(contacts);
                    }, function () {
                        mui.toast("查找联系人失败！");
                    },{multiple:true});
                },
                function(e){
                    mui.toast('打开通讯录失败！');
                });
        };
        
        function formatContactData(contacts){
            var contact={A:new Array(),B:new Array(),C:new Array(),D:new Array(),E:new Array(),F:new Array(),G:new Array(),H:new Array(),
                            I:new Array(),J:new Array(),K:new Array(),M:new Array(),L:new Array(),N:new Array(),O:new Array(),P:new Array(),
                            Q:new Array(),R:new Array(),S:new Array(),T:new Array(),U:new Array(),V:new Array(),W:new Array(),X:new Array(),
                            Y:new Array(),Z:new Array(),'#':new Array()};
            for (var i = 0; i < contacts.length; i++) {
                //按照每个联系人的displayName得到首字母
                var firstC = contacts[i].displayName.substr(0,1);
                if(/^[a-zA-Z]*$/.test(firstC)){
                    firstC = firstC.toUpperCase();
                } else if(/^[\u4e00-\u9fa5]$/.test(firstC)) {
                    firstC = CC2PY(firstC).substr(0,1);
                }
                //按照首字母进行分类
                if(/^[A-Z]*$/.test(firstC)){
                    contact[""+firstC].push(contacts[i]);
                } else{
                    contact['#'].push(contacts[i]);
                }
            }
            return contact;
        };
        
        function renderContacts(contact){
            var fragment = document.createDocumentFragment();
            var conList = document.querySelector('.contact-list');
            var ulNode = document.querySelector("#contactListTemplate").querySelector("ul").cloneNode(true);
            var liNode = document.querySelector("#contactTemplate .contact");
            conList.innerHTML = "";
            for(var item in contact){
                var cloneUlNode = ulNode.cloneNode(true);
                if(item == '#'){
                    cloneUlNode.setAttribute('id','wellNo');
                }else{
                    cloneUlNode.setAttribute('id',item);
                }
                var contacts = contact[item];
                if(contacts.length > 0){
                    cloneUlNode.querySelector('div').innerHTML = item;
                    for (var i=0, j=contacts.length; i<j; i++) {
                        var contactsub = contacts[i];
                        if (contactsub.phoneNumbers && contactsub.phoneNumbers.length > 0) {
                            for(var k=0, l=contactsub.phoneNumbers.length; k<l; k++){
                                var cloneLiNode = liNode.cloneNode(true);
                                var friendName = contactsub.displayName;
                                cloneLiNode.querySelector(".contact-name").innerHTML = friendName;
                                var phoneNum = contactsub.phoneNumbers[k].value;
                                cloneLiNode.querySelector('.phoneNumber').innerHTML = phoneNum;
                                cloneUlNode.appendChild(cloneLiNode);
                            }
                        } else {
                            var cloneLiNode = liNode.cloneNode(true);
                            var friendName = contactsub.displayName;
                            cloneLiNode.querySelector(".contact-name").innerHTML = friendName;
                            cloneUlNode.appendChild(cloneLiNode);
                        }
                    }
                }else{
                    cloneUlNode.innerHTML = "";
                }
                fragment.appendChild(cloneUlNode);
             }
            conList.appendChild(fragment);
        }
    });
	